package com.xigua.数组;

import com.sun.nio.sctp.AbstractNotificationHandler;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 给你一个整数数组 digits ，其中每个元素是一个数字（0 - 9）。数组中可能存在重复元素。

你需要找出 所有 满足下述条件且 互不相同 的整数：

该整数由 digits 中的三个元素按 任意 顺序 依次连接 组成。
该整数不含 前导零
该整数是一个 偶数
例如，给定的 digits 是 [1, 2, 3] ，整数 132 和 312 满足上面列出的全部条件。

将找出的所有互不相同的整数按 递增顺序 排列，并以数组形式返回

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/finding-3-digit-even-numbers
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * @date 2022/4/1816:13
 */
public class _2094_找出3位偶数 {

    public static void main(String[] args) {
        findEvenNumbers(new int[]{2,1,3,});
    }

    public static int[] findEvenNumbers(int[] digits) {
        int nums[] = new int[10];
        for (int digit : digits) {
            nums[digit]++;
        }
        List<Integer> ans = new ArrayList<>();
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] >0){
                nums[i]--;
                for (int j = 0; j < nums.length; j++) {
                    if (nums[j] > 0){
                        nums[j]--;
                        for (int k = 0; k < nums.length; k=k+2) {
                            if (nums[k] >0  ){
                                ans.add(i*100+j*10+k);
                            }
                        }
                        nums[j]++;
                    }
                }
                nums[i]++;
            }
        }
        int result[] = new int[ans.size()];
        for (int i = 0; i < ans.size(); i++) {
            result[i] = ans.get(i);
        }
        return result;

    }

}
